package com.jt.service;

import com.jt.vo.ImageVo;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.util.HashSet;
import java.util.Set;

@Service
public class FileServiceImpl implements FileService{
    private static Set<String> typeSet = new HashSet<>();
    static {
        //利用动态文件将图片类型获取
        typeSet.add(".jpg");
        typeSet.add(".png");
        typeSet.add(".gif");

    }
    /**
     * 业务逻辑:实现文件上传
     * 步骤:
     * 1.校验图片的类型 jpg|png|gif..
     * 2.校验文件是否为恶意程序。。
     * 3.采用分目录的结构进行存储
     * 4.避免文件重名
     * 5.
     * @param uploadFile
     * @return
     */
    @Override
    public ImageVo upload(MultipartFile uploadFile) {
        //1.校验图片类型:利用集合校验，通过某个方法校验在不在集合中，2:利用正则表达式
        //获取文件名称 qwer.jpg
        String fileName = uploadFile.getOriginalFilename();
        fileName = fileName.toLowerCase();
//        1.2 获取文件后缀类型
        int index = fileName.lastIndexOf(".");
        //1.3截取到的是.jpg
        String fileType = fileName.substring(index);
        //1.4准备图片类型的集合。判断是否为图片的类型
        if (!typeSet.contains(fileType)){
            return ImageVo.fail();
        }
        return null;
    }
}
